Checking and Spot-Checking the Correctness of Priority Queues

نویسندگان

  • Matthew Chu
  • Sampath Kannan
  • Andrew McGregor
چکیده

We revisit the problem of memory checking considered by Blum et al. [3]. In this model, a checker monitors the behavior of a data structure residing in unreliable memory given an arbitrary sequence of user defined operations. The checker is permitted a small amount of separate reliable memory and must fail a data structure if it is not behaving as specified and pass it otherwise. How much additional reliable memory is required by the checker? First, we present a checker for an implementation of a priority queue. The checker uses O( √ n logn) space where n is the number of operations performed. We then present a spotchecker using only O( −1 log δ−1 logn) space, that, with probability at least 1−δ, will fail the priority queue if it is -far (defined appropriately) from operating like a priority queue and pass the priority queue if it operates correctly. Finally, we then prove a range of lower bounds that complement our checkers.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formal Correctness of Result Checking for Priority Queues

We formally prove the correctness of the time super-e cient result checker for priority queues, which is implemented in LEDA [17]. A priority queue is a data structure that supports insertion, deletion and retrieval of the minimal element, relative to some order. A result checker for priority queues is a data structure that monitors the input and output of the priority queue. Whenever the user ...

متن کامل

Checking Linearizability of Concurrent Priority Queues

Efficient implementations of concurrent objects such as atomic collections are essential to modern computing. Programming such objects is error prone: in minimizing the synchronization overhead between concurrent object invocations, one risks the conformance to sequential specifications – or in formal terms, one risks violating linearizability. Unfortunately, verifying linearizability is undeci...

متن کامل

Applications of Fuzzy Program Graph in Symbolic Checking of Fuzzy Flip-Flops

All practical digital circuits are usually a mixture of combinational and sequential logic. Flip–flops are essential to sequential logic therefore fuzzy flip–flops are considered to be among the most essential topics of fuzzy digital circuit. The concept of fuzzy digital circuit is among the most interesting applications of fuzzy sets and logic due to the fact that if there has to be an ultimat...

متن کامل

Reachability checking in complex and concurrent software systems using intelligent search methods

Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...

متن کامل

Model Checking Generic Container Implementations

Model checking techniques have been successfully applied to the veriication of correctness properties of complex hardware systems and communication protocols. This success has fueled the application of these techniques to software systems. To date, those eeorts have been targeted at concurrent software whose complexity lies, primarily, in the large number of possible execution orderings of asyn...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007